// 1807. [模拟]矩阵转置 https://oj.rnd.huawei.com/problems/1807/details
// 一个字符串，表示矩阵的行优先表达，仅由数字字符 0-9 组成，长度范围 [1, 10000]
// 输入 435245019
// 输出 420341559
// 输入 0123456789
// 输出  ERROR

#include <algorithm>
#include <cmath>
#include <iostream>
#include <sstream>
#include <string>
#include <utility>
#include <vector>
using namespace std;

class Solution {
 public:
  // 待实现函数，在此函数中填入答题代码
  string Transpose(const string& str) {
    int nLength = str.length();
    int edge = sqrt(nLength);
    if (edge * edge != nLength) {
      return "ERROR";
    }
    // printf("L=%d,e=%d\n", nLength, edge);
    string res;
    for (int i = 0; i < edge; i++) {
      for (int j = 0; j < edge; j++) {
        int val = i + edge * j;
        res.push_back(str[val]);
      }
    }
    return res;
  }
};

int main() {
  string str;
  cin >> str;

  Solution solu;
  string output = solu.Transpose(str);
  cout << output << endl;

  return 0;
}
